<?php
    @header("Content-Type:text/json;charset=utf-8");  //兼容低版本
    
    ### php数组
    // 在 PHP 中，有三种类型的数组：
    // - 数值数组 - 带有数字 ID 键的数组;
    // - 关联数组 - 带有指定的键的数组，每个键关联一个值;
    // - 多维数组 - 包含一个或多个数组的数组;


    // a.数值数组嵌套 数值数组  (js 多维数组)
    // $list = [1,2,[3,4,[5,6]]];
    $list = array(
        1,
        2,
        array(
            3,
            4,
            array(
                5,
                6
            )
        )
    );
    // print_r($list);

        
    // b. 关联数组套数值数组  (类似 js对象数组)
    $zhang = array(
        "name"=>"张三",
        "age"=>18,
        "sex"=>"男",
        "hobby" => array ("唱歌","跳舞","rap"),
        "grade" => array(
            "chinese" => 55,
            "math" => 66,
            "english" => 77,
        )
    );

    // print_r($zhang);

    // 3.数值数组嵌套关联数组   => (类似js中的数组对象)

    $gradeList = array(
        array(
            "name"=>"张三",
            "chinese" => 55,
            "math" => 66,
            "english" => 77,
        ),
        array(
            "name"=>"李四",
            "chinese" => 96,
            "math" => 85,
            "english" => 37,
        ),
        array(
            "name"=>"王五",
            "chinese" => 76,
            "math" => 94,
            "english" => 87,
        )
    );
    // print_r($gradeList);

    // 注意:
    // 1. PHP 代码在服务器上执行，结果以纯 文本  HTML json 形式返回给浏览器/前端(php返回的数据 => 前端请求得到数据   后端返回json数据 => 前端JSON.parse() )
    // 2. json_encode() 在转化JSON数据过程中 a.会将中文编码  b. 数值数组 => js普通数组  关联数组 => js对象解构
    // 3. 如果php需要输出json数据 => 只能输出一条纯json数据,如果不是纯json数据前端解析会报错 ,如果想输出多条,可以将多个数据整合到一个新的关联数组中

    // php文件 => 接口 

    // json_encode()   将php中的数组和对象 转化为 JSON数据(JSON类型的字符串)
    // json_decode()   将json数据(JSON类型的字符串) 解析为 php中的数组和对象

    // echo json_encode($list);
    // echo json_encode($zhang);
    // echo json_encode($gradeList);

    $obj = array(
        "list" => $list,
        "zhang" =>$zhang,
        "gradeList" => $gradeList,
    );
    echo json_encode($obj);



?>